============CARA PEMAKAIAN COUNTER ================
1. Daptarkan format counter di modul Master Data Global -> General -> Document Numbering
2. Klik tombol Add Documentnumbering, isi form tersebut sesuai field-fieldnya misal :
    - Application Name = Aplikasi yang akan di daftarkan penomorannya
    - Project Name = terhadap Project Aplikasi
    - Pt = terhadap Aplikasi dan Project, lalu PTnya
    - Module Name = module yang akan di daftarkan, misal aplikasi transaksi pembuatan JOURNAL
    - Format aplikasi misal GL/[XXXXX]/[MM]/[@PREFIX]/[@TELLER]
    - Reset Type : pilihan nomor akan di reset setiap tahun, bulan, tanggal atau tidak sama sekali.
    - Counter : counter akan di mulai dari berapa, misal 1
    - Year, Month, Day  = settingan awal terhadap nomor counter
    - Description = note atau catatan terhadap penomoran tersebut.
    - Set Default = untuk mensetting penomoran selanjutkan akan mendefault terhadap format yang di set default.
3. untuk mengakses Helper Documentno dengan cara :
    - Daftarkan helper tersebut di model yang akan mengakses helper Documentno dengan contoh berikut :

     function init() {       
         $this->counterdoc = Zend_Controller_Action_HelperBroker::getExistingHelper('Documentno');     
     } 
    
    - Pada function yang akan mengakses method dari  $this->counterdoc, ikuti cara-cari di bawah ini


============================================================MULAI CARA 1 ==========================================================
Cara 1 ini akan mengenerate nomor berdasarkan :
- tanggal,project,pt,aplikasi,modul,dan variabelnya.
- flag adalah acuan untuk mengenerate langsung nomor atau hanya view saja.
  misal 1 untuk langsung mengenerate nomor dan tersimpan di database.
  namun jika di set 0, hanya memview nomor tapi belum di simpan ke database.
- counter akan tetap continue terhadap modulnya, jika modulnya di rubah namun. 
  belum ada settingan default terhadap counter tersebut maka generate tidak berhasil.
- counter dapat di reset sesuai settingan di aplikasi, mau di reset terhadap tahun,bulan,tanggal, atau tidak sama sekali.
- variable dapat di setting secara dinamis, namun indexnya harus di sesuaikan dengan format di settingan

$_docdate     = new DateTime('2016-07-11');
$_project_id  = 1;
$_pt_id       = 1;
$_apps_id     = 7;
$_module      = "BANK";   
$flag = '1';         


$_var = array();
$_var['PREFIX'] = "BNI";
$_var['TELLER'] = "tellernya"; 

 //contoh formatnya GL/[XXXXX]/[MM]/[@PREFIX]/[@TELLER]
 //hasilnya :GL/00001/07/BNI/tellernya
 
$_docNo   = $this->counterdoc->get_documentNo($_project_id, $_pt_id, $_apps_id, $_module, $_var, $_docdate, $flag);

============================================================AKHIR CARA 1 ===========================================================


==============================================================MULAI CARA 2==========================================================
Cara 2 ini akan mengenerate nomor berdasarkan :
- tanggal,project,pt,aplikasi,modul,dan variabelnya.
- flag adalah acuan untuk mengenerate langsung nomor atau hanya view saja.
  misal 1 untuk langsung mengenerate nomor dan tersimpan di database.
  namun jika di set 0, hanya memview nomor tapi belum di simpan ke database.
- counter akan tetap continue terhadap modul dan variabel prefixnya, jika di rubah namun 
  jika modulnya di rubah namun belum ada settingan defaul maka tidak akan berhasil mengenerate nomor perlu di daftarkan terlebih dahulu.
- counter dapat di reset sesuai settingan di aplikasi, misal di reset terhadap tahun,bulan,tanggal, atau tidak sama sekali.
- variable dapat disetting dinamis namun jika variable tersebut berubah maka counter akan mereset menjadi 1 terhadap modulnya.

$_docdate     = new DateTime('2016-08-21');
$_project_id  = 1;
$_pt_id       = 1;
$_apps_id     = 7;
$_module      = "BANK";   
 $flag = '1';           

$_var = array();
$_var['PREFIX'] = "APA";
$_var['TELLER'] = "TEST";

 //contoh formatnya GL/[XXXXX]/[MM]/[@PREFIX]/[@TELLER]
 //hasilnya GL/00001/07/APA/TEST
 $_docNo   = $this->counterdoc->get_dynamicNo($_project_id, $_pt_id, $_apps_id, $_module, $_var1, $_var2, $_docdate, $flag);
 echo $_docNo;
==============================================================AKHIR CARA 2==========================================================


==============================================================MULAI CARA 3==========================================================
Cara 2 ini akan mengenerate nomor berdasarkan :
cara ke 3 ini mirip dengan cara ke 2, namun ada 2 variable yaitu :
1. var1 akan ikut terhadap modulenya, jika variable tersebut berubah maka akan berubah pula 
   counterya menjadi 1, jika sebelumhya belum ada module tersebut.
2. var2 dinamis namun tidak akan mempengaruhi counter.


$_docdate     = new DateTime('2016-08-21');
$_project_id  = 1;
$_pt_id       = 1;
$_apps_id     = 7;
$_module      = "BANK";
 $flag = '1';              

$_var1 = array();
$_var1['PREFIX'] = "CIMB";
$_var1['TELLER'] = "PUTRI";

$_var2 = array();       
$_var2['NOTE']   = "CUMA TEST";

  //contoh formatnya GL/[XXXXX]/[MM]/[@PREFIX]/[@TELLER]/[#NOTE]
 $_docNo   = $this->counterdoc->get_advanceNo($_project_id, $_pt_id, $_apps_id, $_module, $_var1, $_var2, $_docdate, $flag);
 echo $_docNo;
==============================================================AKHIR CARA 3==========================================================


CONTOH YANG SUDAH DI TERAPKAN 

   function docNumber($prefix_id,$flag){
         $data = array(
            $this->session->getCurrentProjectId(),
            $this->session->getCurrentPtId(),
            $prefix_id,
        );
        $result = $this->execSP3("sp_journal_generate_voucher", $data);
        $prefix = $result[1][0]['prefix'];
        
        $_docdate     = new DateTime(date('Y-m-d'));
        $_project_id  = $this->session->getCurrentProjectId();
        $_pt_id       = $this->session->getCurrentPtId();
        $_apps_id     = $this->session->getCurrentModuleId();
        $_module      = "JOURNAL";  
        
        $_var1 = array();
        $_var1['PREFIX'] = $prefix;
        $_var2 = array();      
 
        $_docNo   = $this->counterdoc->get_advanceNo($_project_id, $_pt_id, $_apps_id, $_module, $_var1,$_var2, $_docdate, $flag);
        return $_docNo;
    }



